<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:p="http://primefaces.org/ui"
                template="../templates/principal.xhtml">

    <ui:define name="head">
        <style type="text/css">
            .ui-picklist-list {
                width:300px !important;
                text-align:left !important;
            }

            .ui-picklist-item ui-corner-all { 
                text-align:left !important;  
            }

            .ui-picklist .ui-picklist-item {
                cursor: pointer;
                font-weight: inherit;
                text-align:left !important;
            }

            .ui-picklist-item ui-corner-all ui-sortable-handle { 
                text-align:left !important;  
            }

            .ui-widget-content ui-picklist-list ui-picklist-source ui-corner-bottom ui-sortable { 
                text-align:left !important;  
            }

            .ui-picklist.p1 .ui-picklist-list {
                width: 550px !important;
                text-align:left !important;
            }

            .ui-picklist.p1 .ui-picklist-caption {
                text-align:left !important;
                padding:4px 50px 4px 50px;
                border-bottom:0px none;
            }

        </style>
    </ui:define>

    <ui:define name="content" id="content">  
        <h:form id="frmFinanceiro" prependId="false" target="_blank">

            <p:growl id="messages" showDetail="true" />

            <p:panel id="panel" header="Bem Vindo ao Relatório de Contas a Pagar/Receber">
                <p:fieldset legend="Título do Relatório">
                    <h:panelGrid columns="6" cellpadding="5">
                        <h:outputLabel value="Título do Relatório :" />
                        <p:inputText value="#{relatorioBean.selectedTituloRelatorio.dscTitulo}" id="basicPojo" style="width: 700px;" maxlength="200" />
                        <p:commandButton icon="ui-icon ui-icon-search" title="Pesquisar Títulos do Relatório" update=":frmFinanceiro:tabTitulo" onclick="PF('tituloDialog').show();" />
                        <p:commandButton id="incluirButtonTitulo" actionListener="#{relatorioBean.incluirTitulo}"
                                         update=":frmFinanceiro:panel :frmFinanceiro:messages" icon="ui-icon-disk" title="Incluir Novo Título do Relatório" />
                        <p:commandButton id="salvarButtonTitulo" actionListener="#{relatorioBean.alterarTitulo}"
                                         update=":frmFinanceiro:panel :frmFinanceiro:messages" icon="ui-icon-arrowreturn-1-s" title="Alterar Título do Relatório" />
                        <p:commandButton id="excluirButtonTitulo" update=":frmFinanceiro:panel :frmFinanceiro:messages" 
                                         icon="ui-icon-trash" title="Excluir Título do Relatório" oncomplete="PF('confirmation').show();" />
                    </h:panelGrid>
                </p:fieldset>

                <p:fieldset legend="Empresa">
                    <p:pickList id="pojoPickEmpresa" value="#{relatorioBean.empresaPicks}" var="empresa"
                                itemValue="#{empresa}" itemLabel="#{empresa.nomEmpresa}" converter="empresaConverter2"
                                showCheckbox="true" addAllLabel="Adiciona Todos" addLabel="Adiciona os Selecionados"
                                showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" removeAllLabel="Remove Todos" removeLabel="Remove Selecionados" >

                        <f:facet name="sourceCaption">Origem</f:facet>
                        <f:facet name="targetCaption">Destino</f:facet>

                        <p:column style="width:80%; text-align:left !important;">
                            <h:outputText value="#{empresa.nomEmpresa}" />
                        </p:column>
                    </p:pickList>
                </p:fieldset>

                <p:fieldset id="fdStatus" legend="Status Ordem de Serviço">
                    <p:selectManyCheckbox id="lineDirection2" value="#{relatorioBean.selectedStatus}" >
                        <f:selectItem itemLabel="Em Andamento" itemValue="8" />
                        <f:selectItem itemLabel="Finalizada" itemValue="A" />
                        <f:selectItem itemLabel="Cancelada" itemValue="0" />
                    </p:selectManyCheckbox>
                </p:fieldset>

                <p:fieldset legend="Tipo de Conta">
                    <p:selectManyCheckbox id="lineDirection" value="#{relatorioBean.selectedTipo}" >
                        <f:selectItem itemLabel="Ordem de Serviço" itemValue="O" />
                        <f:selectItem itemLabel="Contas a Receber" itemValue="R" />
                        <f:selectItem itemLabel="Contas a Pagar" itemValue="P" />
                        
                        <p:ajax update=":frmFinanceiro:pnCliStatusfor :frmFinanceiro:pnClifor" listener="#{relatorioBean.handleClienteChange}" />
                    </p:selectManyCheckbox>
                </p:fieldset>

                <h:panelGrid id="pnCliStatusfor">
                    <p:fieldset id="fdStatusCli" legend="Status Cliente" rendered="#{relatorioBean.lcliente}">
                        <p:selectManyCheckbox id="lineDirectionc" value="#{relatorioBean.selectedCliente}" >
                            <f:selectItem itemLabel="Ativo" itemValue="A" />
                            <f:selectItem itemLabel="Inativo" itemValue="I" />
                            <f:selectItem itemLabel="Prospect" itemValue="P" />

                            <p:ajax update=":frmFinanceiro:pnClifor" listener="#{relatorioBean.handleClienteStatusChange}" />
                        </p:selectManyCheckbox>
                    </p:fieldset>
                </h:panelGrid>

                <h:panelGrid id="pnClifor" columns="2">
                    <p:fieldset legend="Clientes" rendered="#{relatorioBean.lcliente}">
                        <p:pickList id="pojoPickCliente" value="#{relatorioBean.clientePicks}" var="cliente"
                                    itemValue="#{cliente}" itemLabel="#{cliente.nomFantasia}" converter="clienteConverter"
                                    showCheckbox="true" addAllLabel="Adiciona Todos" addLabel="Adiciona os Selecionados"
                                    showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" removeAllLabel="Remove Todos" removeLabel="Remove Selecionados" >

                            <f:facet name="sourceCaption">Origem</f:facet>
                            <f:facet name="targetCaption">Destino</f:facet>

                            <p:column style="width:80%; text-align:left !important;">
                                #{cliente.nomFantasia}
                            </p:column>
                        </p:pickList>
                    </p:fieldset>

                    <p:fieldset legend="Fornecedores" rendered="#{relatorioBean.lfornecedor}">
                        <p:pickList id="pojoPickFornecedor" value="#{relatorioBean.fornecedorPicks}" var="fornecedor"
                                    itemValue="#{fornecedor}" itemLabel="#{fornecedor.nomFantasia}" converter="fornecedorConverter"
                                    showCheckbox="true" addAllLabel="Adiciona Todos" addLabel="Adiciona os Selecionados"
                                    showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" removeAllLabel="Remove Todos" removeLabel="Remove Selecionados" >

                            <f:facet name="sourceCaption">Origem</f:facet>
                            <f:facet name="targetCaption">Destino</f:facet>

                            <p:column style="width:80%; text-align:left !important;">
                                #{fornecedor.nomFantasia}
                            </p:column>
                        </p:pickList>
                    </p:fieldset>
                </h:panelGrid>

                <p:fieldset id="fsEmpreendimento" legend="Empreendimento\Centro de Controle" toggleable="true" collapsed="true">
                    <p:pickList id="pojoPickEmpreendimento" value="#{relatorioBean.centroCustoPicks}" var="empreendimento" effect="bounce"
                                itemValue="#{empreendimento}" itemLabel="#{empreendimento.dscCusto.trim().toUpperCase()}" converter="centroCustoConverter"
                                showCheckbox="true" addAllLabel="Adiciona Todos" addLabel="Adiciona os Selecionados"
                                showSourceFilter="true" showTargetFilter="true" filterMatchMode="contains" removeAllLabel="Remove Todos" removeLabel="Remove Selecionados" >

                        <f:facet name="sourceCaption">Origem</f:facet>
                        <f:facet name="targetCaption">Destino</f:facet>

                        <p:column>
                            <h:outputText value="#{empreendimento.dscCusto.trim().toUpperCase()}" styleClass="p1" />
                        </p:column>
                    </p:pickList>
                </p:fieldset>

                <p:fieldset legend="Tipo de Documento - STATUS ETAPAS">
                    <p:selectManyCheckbox id="linePago" value="#{relatorioBean.selectedTipoDocumento}">
                        <f:selectItem itemLabel="[A] Faturar" itemValue="A" />
                        <f:selectItem itemLabel="[F]aturado não Pago" itemValue="F" />
                        <f:selectItem itemLabel="Faturado [P]ago" itemValue="P" />
                        <f:selectItem itemLabel="[C]ancelado" itemValue="C" />
                    </p:selectManyCheckbox>
                    <p:fieldset id="fsDscStatus" legend="Descritivos dos Status das Etapas" toggleable="true" collapsed="false">
                        <h:panelGrid columns="2">
                            <h:outputText value="A - " style="font-weight:bold;" />
                            <h:outputText value="A Faturar" />

                            <h:outputText value="F - " style="font-weight:bold;" />
                            <h:outputText value="Faturado não Pago" />

                            <h:outputText value="P - " style="font-weight:bold;" />
                            <h:outputText value="Faturado Pago" />

                            <h:outputText value="C - " style="font-weight:bold;" />
                            <h:outputText value="Cancelado" />
                        </h:panelGrid>
                    </p:fieldset>
                </p:fieldset>

                <p:fieldset legend="Faixa Data Emissão O.S.">
                    <h:panelGrid columns="4">
                        <h:outputText value="De: " />
                        <p:inputMask id="imDatInicEmiss" value="#{relatorioBean.datinicemiss}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>

                        <h:outputText value=" Até:" />
                        <p:inputMask id="imDatFimEmiss" value="#{relatorioBean.datfimemiss}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>
                    </h:panelGrid>
                </p:fieldset>

                <p:fieldset legend="Faixa Data Emissão Etapa">
                    <h:panelGrid columns="4">
                        <h:outputText value="De: " />
                        <p:inputMask id="imDatInicEmissEtapa" value="#{relatorioBean.datinicemissetapa}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>

                        <h:outputText value=" Até:" />
                        <p:inputMask id="imDatFimEmissEtapa" value="#{relatorioBean.datfimemissetapa}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>
                    </h:panelGrid>
                </p:fieldset>

                <p:fieldset legend="Faixa Data de Vencimento">
                    <h:panelGrid columns="6">
                        <h:outputText value="De: " />
                        <p:inputMask id="imDatInic" value="#{relatorioBean.datinicvenc}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>

                        <h:outputText value=" Até:" />
                        <p:inputMask id="imDatFim" value="#{relatorioBean.datfimvenc}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>
                        <!--
                                                <p:selectBooleanCheckbox value="#{relatorioBean.aberto}" />
                                                <h:outputText value="Imprime Data Vencimento em Branco? " style="font-weight:bold;" />
                        -->
                    </h:panelGrid>
                </p:fieldset>

                <p:fieldset legend="Faixa Data de Pagamento">
                    <h:panelGrid columns="4">
                        <h:outputText value="De: " />
                        <p:inputMask id="imDatInicPgto" value="#{relatorioBean.datinicpgto}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>

                        <h:outputText value=" Até:" />
                        <p:inputMask id="imDatFimPgto" value="#{relatorioBean.datfimpgto}" mask="99/99/9999" style="font-weight:bold; width: 100px;" title="Deixe em Branco para todos!">
                            <f:convertDateTime type="date" dateStyle="short" pattern="dd/MM/yyyy" locale="pt-BR"/>
                        </p:inputMask>
                    </h:panelGrid>
                </p:fieldset>

                <br />
                <p:commandButton id="buttonImprimir" icon="ui-icon-calculator" value="Carregar Dados dos Filtros do Relatatório" update=":frmFinanceiro:panel :frmFinanceiro:messages"
                                 actionListener="#{relatorioBean.gerarRelatorioFinanceiro}" />

                <p:commandButton id="buttonGerar" icon="ui-icon-print" value="Imprimir Relatório" update=":frmFinanceiro:panel :frmFinanceiro:messages"
                                 action="#{relatorioBean.geraRelatorio(1)}" ajax="false" />


                <!-- PESQUISA TITULO RELATORIO -->
                <p:dialog id="dialogTitulo" header="Pesquisa Títulos do Relatório" widgetVar="tituloDialog" resizable="true"
                          width="1000" showEffect="explode" hideEffect="explode" position="right,top">

                    <p:dataTable id="tabTitulo" widgetVar="wtabTitulo" var="titulo" value="#{relatorioBean.lazyModel}" 
                                 lazy="true" paginator="true" rows="12" paginatorPosition="top"
                                 emptyMessage="Nenhum Registro Retornado ..." filterEvent="enter" style="text-align: left;">

                        <p:column headerText="Descrição" sortBy="#{titulo.dscTitulo}" filterBy="#{titulo.dscTitulo}">
                            <h:outputText value="#{titulo.dscTitulo}" />
                        </p:column>

                        <p:column style="width: 50px">
                            <p:commandButton id="selectButtonTitulo" update=":frmFinanceiro:panel :frmFinanceiro:messages" 
                                             icon="ui-icon-search" title="Selecionar Título do Relatório" oncomplete="PF('tituloDialog').hide()">
                                <f:setPropertyActionListener value="#{titulo}" target="#{relatorioBean.selectedTituloRelatorio}" />
                            </p:commandButton>
                        </p:column>
                    </p:dataTable>
                </p:dialog>
                <!-- EXCLUIR TITULO -->
                <p:dialog header="Confirma a Exclusão desse Título do Relatório?" widgetVar="confirmation">
                    <p:commandButton value="Sim" update=":frmFinanceiro:panel :frmFinanceiro:messages" oncomplete="PF('confirmation').hide();"
                                     actionListener="#{relatorioBean.excluirTitulo}" />
                    <p:commandButton value="Não" onclick="PF('confirmation').hide()" type="button" />

                </p:dialog>
            </p:panel>
            <h:inputHidden id="tipRel" value="pagarreceber" />
        </h:form>
    </ui:define>
</ui:composition>
